public abstract class Proc
{
    public virtual string type
    {
        get { return GetType().Name; }
    }

    public abstract void process();

    public abstract void fixedUpdate();

    public abstract void onBegin(object[] additionalParams);

    public abstract void onEnd();
}